package com.bookstore.Service;

import com.bookstore.Domain.Book;
import com.bookstore.Domain.Borrows;
import org.springframework.transaction.annotation.Transactional;


import java.util.List;

/**
 * @author 未来
 */
@Transactional
public interface BookService {
    /**
     * 查询所有书籍信息
     *
     * @return ：书籍集合对象
     */
    List<Book> findAll();

    /**
     * 根据book-name获取对应的书籍信息
     *
     * @param book_name
     * @return :返回对应书籍信息
     */
    Book findByName(String book_name);

    /**
     * 书本入库操作
     *
     * @param book ：入库数量保存在书记对象当中
     * @return ：保存是否成功
     */
    boolean updateBook(Book book);

    /**
     * 根据id删除相关书籍信息
     *
     * @param ：保存在book对象里面
     * @return ：返回是否删除成功
     */
    boolean deleteBook(int id);

    /**
     * 插入新书籍信息
     *
     * @param book ：保存对象
     * @return ：是否插入成功
     */
    boolean saveBook(Book book);

    /**
     * 分页查询
     *
     * @param page   ：页数
     * @param number ：一页显示多少条数据
     * @return ：返回集合
     */
    List<Book> getPages(int page, int number);

    /**
     * 根据时间查询相关时间类的书记数据
     *
     * @param start_time ：开始时间
     * @param end_time   ：结束时间
     * @return ： 返回在时间内的数据
     */
    List<Book> getBook_time(String start_time, String end_time);

    /**
     * 根据前端传递的id数组数据删除书籍信息
     */
    boolean deleteBookAlist(int[] ids);

    /**
     * 模糊查询相关书籍信息
     *
     * @param query：传递的字符串
     * @return
     */
    List<Book> searchBook(String query);

    /**
     * 图书借阅
     *
     * @param book
     * @return
     */
    boolean borrows(Book book);

    /**
     * 查看借阅详情
     *
     * @return
     */
    List<Borrows> getAllborrow();

}
